The present invention relates to session migration, and in particular, to migrating sessions in a client-server environment.
In general, a client-server architecture is a type of distributed computer system in which the computers are connected via a network. Client-server systems are widely used in modern enterprise systems. For example, the SAP R/3 system and the JAVA 2 enterprise edition (J2EE) system are based on a client-server architecture. In a client-server system, computers are divided into two types: the clients and the servers. The clients send requests to the servers, and the servers handle the requests from the clients.
In modern client-server systems, more than one server may exist on the server side. Some kind of session management technologies, such as load balancing, may be used to assign client sessions to different servers, for example. In general, session management may be static or dynamic.
In the static case, a client may be assigned to a particular server when the client joins the network. An example of a static session management system is the Linux Virtual Server system, as understood. However, static load balancing systems lack the flexibility to respond to dynamic load changes of the servers. In addition, static load balancing is generally unresponsive to server failures, so for reliability and dependability reasons, many business applications use dynamic techniques.
The MOSIX system, as understood, is an example clustering technology that supports dynamic session management. However, the MOSIX system is generally unsuitable for client-server systems because the MOSIX system as understood migrates processes between servers without consideration of network connections. In client-server systems, for example, clients typically establish connections with a server through a network address and port. The network address is usually associated with a machine instead of a process. When a server process is migrated from one server to another, all clients connected to the process may be required to change the related network and port address information about the process. It is not an easy task to let all clients be involved in the migration process. Thus, the MOSIX system as understood is undesirable in certain environments.
U.S. Patent Application No. 2005/0262411 (“the '411 application”), as understood, describes another system for dynamic session management. The '411 application, as understood, describes migrating clients between servers by migrating processes. The '411 application, as understood, addresses the network connection problem (described above with reference to the MOSIX system) when migrating processes between a primary server and secondary servers. There is a virtual IP address associated with the process on the primary server. After migrating, the secondary server takes over the virtual IP address. All clients then establish connection with a server through a virtual IP address. In this way, the method described in the '411 application addresses the issues involved when migrating processes between servers.
However, it is often desirable to perform dynamic session management in ways other than by migrating processes between servers. In certain situations, it is undesirable to migrate the entire process because of the network overhead involved. In such situations, the '411 application as understood is deficient.
In addition, it is often desirable to perform dynamic load balancing in ways other than migrating an IP address among servers. When migrating an IP address between servers, modifications are required on both data link layer and transport layer. Typically, network equipment have information about each other with MAC (Media Access Control) addresses at the data link layer. Each server has it's own unique MAC addresses. A protocol (e.g., ARP/RARP) is used to map an IP address to an MAC address. If an IP address is migrated from one server to another, the MAC address associated with the IP address has to be changed. To ensure the communication between clients and servers will not be interrupted, all network equipments within the same network segment have to be informed about the change of the MAC address. Furthermore, modifications may also need to be done at the transport layer. The communication at the network (IP) layer is stateless; but the communication at the transport layer includes state information. When migrating an IP address from one server to another to maintain communication between clients and servers, the inner states in the transport layer of the first server may need to be transferred and reinitialized at the second server. Due to the above complexity in the data link layer and the transport layer, migrating IP addresses among servers is not desirable.
Akinori Saitoh and Hideo Masuda in “A Transparent Session Migration and Transparent Fail-over Protocol for PPPoE Server Cluster”, as understood, describe a PPPoE client migration scheme (hereafter termed “the PPPoE scheme”). The PPPoE scheme, as understood, works at the network layer and depends upon modification of the network flow of the data link layer (layer 2) to work. However, it is often desirable to work at a layer other than the network layer or to modify the network flow at a level other than the data link layer (layer 2). In addition, the PPPoE scheme as understood works at the client end of communication. However, it is often desirable to perform session management by network components other than the clients. Additionally, the PPPoE scheme as understood requires that all clients be located in a Layer 2 switch network. However, it is often desirable to include clients in other than a Layer 2 switch network. Furthermore, the PPPoE scheme as understood assigns a unique MAC address to each client and migrates the MAC address of the client from one server to another when it migrates a session. However, it is often desirable to not assign MAC addresses to clients or to migrate address information of clients between servers. Finally, the PPPoE scheme as understood requires server components to broadcast its session information every second. However, it is often desirable not to broadcast session information. Accordingly, the PPPoE scheme as understood has many potential disadvantages.
There is a desire to perform session management, such as load balancing, in a manner that is transparent to the clients. In addition, there is a desire to perform session management with reduced network overhead. Moreover, there is a desire to perform session management without migrating a virtual IP address among servers.
Thus, there is a need for improved session management. The present invention solves these and other problems by providing systems and methods of migrating sessions between computer systems.